
-- --------------------------------------------------
-- Entity Designer DDL Script for SQL Server 2005, 2008, and Azure
-- --------------------------------------------------
-- Date Created: 05/04/2012 20:47:39
-- Generated from EDMX file: c:\users\jose\documents\visual studio 2010\Projects\MvcApplication1\MvcApplication1\banco_alimentos.edmx
-- --------------------------------------------------

SET QUOTED_IDENTIFIER OFF;
GO
USE [bancoalimentos];
GO
IF SCHEMA_ID(N'dbo') IS NULL EXECUTE(N'CREATE SCHEMA [dbo]');
GO

-- --------------------------------------------------
-- Dropping existing FOREIGN KEY constraints
-- --------------------------------------------------


-- --------------------------------------------------
-- Dropping existing tables
-- --------------------------------------------------


-- --------------------------------------------------
-- Creating all tables
-- --------------------------------------------------

-- Creating table 'usuario'
CREATE TABLE [dbo].[usuario] (
    [usuarioID] int IDENTITY(1,1) NOT NULL,
    [nick] nvarchar(max)  NOT NULL,
    [contraseña] nvarchar(max)  NOT NULL,
    [email] nvarchar(max)  NOT NULL,
    [validado] bit  NOT NULL
);
GO

-- Creating table 'necesidad'
CREATE TABLE [dbo].[necesidad] (
    [necesidadID] int IDENTITY(1,1) NOT NULL,
    [titulo] nvarchar(max)  NOT NULL,
    [fecha] datetime  NOT NULL,
    [es_urgente] bit  NOT NULL,
    [lugar_pais] nvarchar(max)  NOT NULL,
    [lugar_provincia] nvarchar(max)  NOT NULL,
    [lugar_ciudad] nvarchar(max)  NOT NULL,
    [banco_usuarioID] int  NOT NULL,
    [kilos] decimal(18,0)  NOT NULL
);
GO

-- Creating table 'campaña'
CREATE TABLE [dbo].[campaña] (
    [campañaID] int IDENTITY(1,1) NOT NULL,
    [nombre] nvarchar(max)  NOT NULL,
    [descripcion] nvarchar(max)  NOT NULL,
    [fecha_inicio] nvarchar(max)  NOT NULL,
    [fecha_fin] datetime  NOT NULL,
    [organizador_campaña_usuarioID] int  NOT NULL,
    [foro_foroID] int  NOT NULL
);
GO

-- Creating table 'resultado'
CREATE TABLE [dbo].[resultado] (
    [resultadoID] int IDENTITY(1,1) NOT NULL,
    [kilos_recogidos] decimal(18,0)  NOT NULL,
    [kilos_esperados] nvarchar(max)  NOT NULL,
    [personas_donaron] int  NOT NULL,
    [media_donacion] decimal(18,0)  NOT NULL,
    [valoracion] smallint  NOT NULL,
    [descripcion_campaña] nvarchar(max)  NOT NULL,
    [campaña_campañaID] int  NOT NULL
);
GO

-- Creating table 'foro'
CREATE TABLE [dbo].[foro] (
    [foroID] int IDENTITY(1,1) NOT NULL
);
GO

-- Creating table 'linea_foro'
CREATE TABLE [dbo].[linea_foro] (
    [linea_foroID] int IDENTITY(1,1) NOT NULL,
    [usuario_usuarioID] int  NOT NULL,
    [foro_foroID] int  NOT NULL,
    [texto] nvarchar(max)  NOT NULL,
    [fecha] datetime  NOT NULL
);
GO

-- Creating table 'usuario_banco'
CREATE TABLE [dbo].[usuario_banco] (
    [bancoID] int IDENTITY(1,1) NOT NULL,
    [nombre_banco] nvarchar(max)  NOT NULL,
    [descripcion] nvarchar(max)  NOT NULL,
    [lugar_pais] nvarchar(max)  NOT NULL,
    [lugar_provincia] nvarchar(max)  NOT NULL,
    [lugar_ciudad] nvarchar(max)  NOT NULL,
    [usuarioID] int  NOT NULL
);
GO

-- Creating table 'usuario_organizador_campaña'
CREATE TABLE [dbo].[usuario_organizador_campaña] (
    [dniID] int IDENTITY(1,1) NOT NULL,
    [nombre] nvarchar(max)  NOT NULL,
    [apellido1] nvarchar(max)  NOT NULL,
    [apellido2] nvarchar(max)  NOT NULL,
    [domicilio] nvarchar(max)  NOT NULL,
    [usuarioID] int  NOT NULL
);
GO

-- --------------------------------------------------
-- Creating all PRIMARY KEY constraints
-- --------------------------------------------------

-- Creating primary key on [usuarioID] in table 'usuario'
ALTER TABLE [dbo].[usuario]
ADD CONSTRAINT [PK_usuario]
    PRIMARY KEY CLUSTERED ([usuarioID] ASC);
GO

-- Creating primary key on [necesidadID] in table 'necesidad'
ALTER TABLE [dbo].[necesidad]
ADD CONSTRAINT [PK_necesidad]
    PRIMARY KEY CLUSTERED ([necesidadID] ASC);
GO

-- Creating primary key on [campañaID] in table 'campaña'
ALTER TABLE [dbo].[campaña]
ADD CONSTRAINT [PK_campaña]
    PRIMARY KEY CLUSTERED ([campañaID] ASC);
GO

-- Creating primary key on [resultadoID] in table 'resultado'
ALTER TABLE [dbo].[resultado]
ADD CONSTRAINT [PK_resultado]
    PRIMARY KEY CLUSTERED ([resultadoID] ASC);
GO

-- Creating primary key on [foroID] in table 'foro'
ALTER TABLE [dbo].[foro]
ADD CONSTRAINT [PK_foro]
    PRIMARY KEY CLUSTERED ([foroID] ASC);
GO

-- Creating primary key on [linea_foroID] in table 'linea_foro'
ALTER TABLE [dbo].[linea_foro]
ADD CONSTRAINT [PK_linea_foro]
    PRIMARY KEY CLUSTERED ([linea_foroID] ASC);
GO

-- Creating primary key on [usuarioID] in table 'usuario_banco'
ALTER TABLE [dbo].[usuario_banco]
ADD CONSTRAINT [PK_usuario_banco]
    PRIMARY KEY CLUSTERED ([usuarioID] ASC);
GO

-- Creating primary key on [usuarioID] in table 'usuario_organizador_campaña'
ALTER TABLE [dbo].[usuario_organizador_campaña]
ADD CONSTRAINT [PK_usuario_organizador_campaña]
    PRIMARY KEY CLUSTERED ([usuarioID] ASC);
GO

-- --------------------------------------------------
-- Creating all FOREIGN KEY constraints
-- --------------------------------------------------

-- Creating foreign key on [banco_usuarioID] in table 'necesidad'
ALTER TABLE [dbo].[necesidad]
ADD CONSTRAINT [FK_banconecesidad]
    FOREIGN KEY ([banco_usuarioID])
    REFERENCES [dbo].[usuario_banco]
        ([usuarioID])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_banconecesidad'
CREATE INDEX [IX_FK_banconecesidad]
ON [dbo].[necesidad]
    ([banco_usuarioID]);
GO

-- Creating foreign key on [organizador_campaña_usuarioID] in table 'campaña'
ALTER TABLE [dbo].[campaña]
ADD CONSTRAINT [FK_organizador_campañacampaña]
    FOREIGN KEY ([organizador_campaña_usuarioID])
    REFERENCES [dbo].[usuario_organizador_campaña]
        ([usuarioID])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_organizador_campañacampaña'
CREATE INDEX [IX_FK_organizador_campañacampaña]
ON [dbo].[campaña]
    ([organizador_campaña_usuarioID]);
GO

-- Creating foreign key on [foro_foroID] in table 'campaña'
ALTER TABLE [dbo].[campaña]
ADD CONSTRAINT [FK_campañaforo]
    FOREIGN KEY ([foro_foroID])
    REFERENCES [dbo].[foro]
        ([foroID])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_campañaforo'
CREATE INDEX [IX_FK_campañaforo]
ON [dbo].[campaña]
    ([foro_foroID]);
GO

-- Creating foreign key on [campaña_campañaID] in table 'resultado'
ALTER TABLE [dbo].[resultado]
ADD CONSTRAINT [FK_campañaresultado]
    FOREIGN KEY ([campaña_campañaID])
    REFERENCES [dbo].[campaña]
        ([campañaID])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_campañaresultado'
CREATE INDEX [IX_FK_campañaresultado]
ON [dbo].[resultado]
    ([campaña_campañaID]);
GO

-- Creating foreign key on [usuario_usuarioID] in table 'linea_foro'
ALTER TABLE [dbo].[linea_foro]
ADD CONSTRAINT [FK_usuariolinea_foro]
    FOREIGN KEY ([usuario_usuarioID])
    REFERENCES [dbo].[usuario]
        ([usuarioID])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_usuariolinea_foro'
CREATE INDEX [IX_FK_usuariolinea_foro]
ON [dbo].[linea_foro]
    ([usuario_usuarioID]);
GO

-- Creating foreign key on [foro_foroID] in table 'linea_foro'
ALTER TABLE [dbo].[linea_foro]
ADD CONSTRAINT [FK_forolinea_foro]
    FOREIGN KEY ([foro_foroID])
    REFERENCES [dbo].[foro]
        ([foroID])
    ON DELETE NO ACTION ON UPDATE NO ACTION;

-- Creating non-clustered index for FOREIGN KEY 'FK_forolinea_foro'
CREATE INDEX [IX_FK_forolinea_foro]
ON [dbo].[linea_foro]
    ([foro_foroID]);
GO

-- Creating foreign key on [usuarioID] in table 'usuario_banco'
ALTER TABLE [dbo].[usuario_banco]
ADD CONSTRAINT [FK_banco_inherits_usuario]
    FOREIGN KEY ([usuarioID])
    REFERENCES [dbo].[usuario]
        ([usuarioID])
    ON DELETE NO ACTION ON UPDATE NO ACTION;
GO

-- Creating foreign key on [usuarioID] in table 'usuario_organizador_campaña'
ALTER TABLE [dbo].[usuario_organizador_campaña]
ADD CONSTRAINT [FK_organizador_campaña_inherits_usuario]
    FOREIGN KEY ([usuarioID])
    REFERENCES [dbo].[usuario]
        ([usuarioID])
    ON DELETE NO ACTION ON UPDATE NO ACTION;
GO

-- --------------------------------------------------
-- Script has ended
-- --------------------------------------------------